#include <stdio.h>

//拆解函数
void dismantle(int n1 , int num1){
    //定义数组
    int str_1[20];
    //将每一位的值存入数组
    for (int i = 0; i < n1; i++)
    {
        str_1[i] = num1%10;
        num1/=10;
    }
    //打印数组存储的值
    for (int i = n1-1; i >= 0; i--)
    {
        printf("%d ",str_1[i]);
    }
    printf("\n");

}

void print_binary(int num) {
    // 遍历整数的每一位（从最高位到最低位）
    for (int i = sizeof(num) * 8 - 1; i >= 0; i--) {
        // 使用位操作获取当前位的值
        int bit = (num >> i) & 1;
        printf("%d", bit);

        // 每4位加一个空格，方便阅读
        if (i % 4 == 0) {
            printf(" ");
        }
    }
    printf("\n");
}



int main(int argc, char const *argv[])
{
    int n ,num ,m;
    printf("请输入n:");
    scanf("%d",&n);
    printf("请输入一个n位数:");
    scanf("%d",&num);
    dismantle(n,num);

    printf("请输入m:");
    scanf("%d",&m);
    print_binary(m);
    return 0;
}
